print 'koro.modules.anagrafiche'
from koro.core.model import ModuleInfo
from koro.modules.anagrafiche import context,ui,model,__version__
from koro.modules.anagrafiche.ui import page,panel
from koro.modules.commerciale.model import Listino,Iva


info=ModuleInfo(dependency=('commerciale',),
                description='Modulo per la gestione delle anagrafiche dei Clienti, dei Fornitori e della propria Azienda. ',
                version=__version__.VERSION_STRING,
                weight=250)

def id_map():    
    return {ui.ID_ANACLI_PAGE:context.ClientiContext,
            ui.ID_ANAFORN_PAGE:context.FornitoriContext,
            }

def context_map():    
    return {context.ClientiContext:(page.ClientiPage,(),{}),
            context.FornitoriContext:(page.FornitoriPage,(),{}),
            }

def name_map():    
    return {'CLIENTI':context.ClientiContext,
            'FORNITORI':context.FornitoriContext,            
            'AZIENDA':context.AziendaContext}

def or_mapping(mapper,relation,metadata,Table):    
    
    mapper(model.Indirizzo,Table('indirizzi',metadata,autoload=True))    
    mapper(model.Azienda,Table('dati_azienda',metadata,autoload=True),
               properties={'indirizzo':relation(model.Indirizzo,cascade='all'),
                           })    
    mapper(model.ClienteFornitore,Table('clienti_fornitori',metadata,autoload=True),
               properties={'indirizzo':relation(model.Indirizzo,cascade="all,delete"),
                           'listino':relation(Listino),
                           'iva':relation(Iva),
                          })

def menu(menubar):
    ui.do_menu(menubar)

def option_view():
    return panel.AziendaOptionPanel
